package Day11_2;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @author : niu niu
 * @version : 1.0.0
 * @date : 2022/11/2 19:22
 */
public class Demo1 {

    public static void main(String[] args) {
        Person s = new Person(176, 52, 93, 2);
        Person t = new Person(188, 83, 82, 3);

        int cmp = s.compareTo(t);
        if (cmp < 0) {
            System.out.println(s + " 小于 " + t); // 这个是我们的预期
        } else if (cmp == 0) {
            System.out.println(s + " 等于 " + t);
        } else {
            // cmp > 0
            System.out.println(s + " 大于 " + t);
        }
        s.equals(t);
    }
    // Thread.sleep 方法可能抛出 InterruptedException 这个受查异常
    // 所以要么：我们 catch 这个异常
    // 要么，通过 throws 把异常加到方法签名上，表示 main 方法也可能抛出 InterruptedException 异常
    public static void main3(String[] args) throws InterruptedException {
        Date s = new Date();   // 返回当前的时间
        // 故意在中间浪费一段时间
        Thread.sleep(1000); // 让代码暂停 1000ms 也就是 1s
        Date t = new Date();   // 返回当前的时间
        // t 执行的时间要比 s 晚 1s 左右

        // 比较 t 和 s 的大小
        // 直觉上：s 小于 t
        // if (s < t) { } 不能使用 < 来比较两个引用

        int cmp = s.compareTo(t);
        if (cmp < 0) {
            System.out.println(s + " 小于 " + t);
        } else if (cmp == 0) {
            System.out.println(s + " 等于 " + t);
        } else {
            // cmp > 0
            System.out.println(s + " 大于 " + t);
        }
    }

    public static void main2(String[] args) {
        Integer s = 1993;
        Integer t = 2022;

        if (s < t) {    // 由于 Integer 是包装类，所以编译器帮我们自动拆箱了
        }

        if (s.intValue() < t.intValue()) {  // 上面的写法其实就是下面这个
        }

        // 比较 s 和 t 的大小
        // 1. 确认 Integer 类有没有实现 Comparable 接口 | 确认实现了 Comparable
        // 2. 遵守 Comparable 的规范进行比较（信任 Integer 正确地重写 compareTo）
        int cmp = s.compareTo(t);
        if (cmp < 0) {
            System.out.println(s + " 小于 " + t);
        } else if (cmp == 0) {
            System.out.println(s + " 等于 " + t);
        } else {
            // cmp > 0
            System.out.println(s + " 大于 " + t);
        }
    }
    public static void main1(String[] args) {
        String s = "hello";
        String t = "world";
        // h < w，所以 hello < world

        // 要比较 s 和 t 谁大谁小
        int cmp = s.compareTo(t);   // 按照字符进行依次比较
        if (cmp < 0) {
            System.out.println(s + " 小于 " + t);
        } else if (cmp == 0) {
            System.out.println(s + " 等于 " + t);
        } else {
            // cmp > 0
            System.out.println(s + " 大于 " + t);
        }
    }
}
